Skip to main content

Vinculación de sus propias E/S

Con esta funcionalidad, las E/S locales pueden conectarse a un controlador y utilizarse desde la aplicación IEC.

Edición de la descripción del dispositivo

En el ejemplo UDSIoDrvExample.project suministrado, se crean dos entradas y salidas con la descripción del dispositivo. Las entradas y salidas se enlazan a través de un Socket de Dominio Unix. Encontrará el ejemplo en el directorio de instalación de CODESYS en el subdirectorio CODESYS Control SL Extension Package\<version>\Examples\ExternalIoDrv.

_rtslext_img_io_connection.png

Para definir sus propias entradas y salidas, el archivo de descripción del dispositivo SocketUnixIOTemplate.devdesc.xml tiene que ser adaptado. un XML parameter elemento tiene que ser definido para cada una de las entradas y salidas. ParameterId tiene que ser único aquí dentro del archivo de descripción del dispositivo. Recomendamos simplemente numerar en orden ascendente sin espacios. Ejemplo: 1000 1001 1002 y así sucesivamente: las entradas deben numerarse desde 1000, las salidas desde 2000.

Aviso

Si se modifica la descripción del dispositivo, se debe volver a instalar en el repositorio de dispositivos para que esté disponible en el proyecto.

<Parameter ParameterId="1000" type="std:DWORD">
   <Attributes channel="input"/>
   <Default/>
   <Name name="local:in1">/Namne>
</Parameter>

Nombre

Descripción

ID de parámetro

ID único por el que se llama a la entrada o salida

escribe

Definición del ancho de la entrada o salida. Se realiza especificando un tipo de datos adecuadamente amplio, como std:BYTE, std:WORD, std:DWORD, o std:LWORD. También se permiten otros tipos de datos simples.

canal de atributos

input o output

Nombre nombre

Nombre de la entrada o salida respectiva

Además, se debe asignar el ID del dispositivo, que se define en <DeviceIdentification>.El rango 0x0001 8000 a 0x0001 80FF se proporciona con este fin para evitar colisiones con los dispositivos existentes.

Importante

La descripción del dispositivo, así como el controlador de E/S subyacente, no deben instanciarse varias veces en un PLC porque el orden de los módulos no es fijo. Esto puede provocar que el controlador de E/S no pueda garantizar la asignación.

Ejemplo de Python

En el ejemplo de Python uds_io_driver.py, se reciben las salidas y se escriben las entradas del dispositivo. Los parámetros de entrada (salidas IEC) se pasan como tuplas de cadenas (paramType, paramValue) con el ID de parámetro de la descripción del dispositivo como índice.

El controlador puede manejar los tipos de datos. USINT, UINT, UDINT, y ULINT. Otros tipos de datos deben convertirse en un tipo de datos adecuado.

Ejemplo: ('2000': ('UDINT', '11'), '2001': ('UDINT', '22')}.Los parámetros de salida están en el mismo formato.

También para el par, un "salida"/parámetro de salida es, sin embargo, un valor de salida que la aplicación IEC debe transportar "hacia afuera" (por ejemplo, escribirlo en GPIO reales). El UDS_IODriver_0 La clase implementada en el ejemplo extiende el ExternalFunctionBase clase. El nombre de la clase se deriva de UDS_IODriver_ seguido del índice de instancia en orden ascendente. Call() es necesaria la función, que se llama desde el mecanismo de IEC. Las salidas IEC ahora se pueden evaluar aquí y las entradas IEC se pueden transferir.

Uso de la interfaz solo como miembro de Linux codesysuser grupo de usuario

Separación de procesos